package cc.admin.modules.graduate.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import cc.admin.poi.excel.annotation.Excel;
import cc.admin.common.aspect.annotation.Dict;

/**
 * @Description: 话题树
 * @Author: cc-admin
 * @Date:   2025-02-18
 * @Version: V1.0.0
 */
@Data
@TableName("topic")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="topic对象", description="话题树")
public class Topic {

    /**id*/
    @Excel(name = "id", width = 15)
    @ApiModelProperty(value = "id")
    private String id;
    /**话题名*/
    @Excel(name = "话题名", width = 15)
    @ApiModelProperty(value = "话题名")
    private String label;
    /**话题值*/
    @Excel(name = "话题值", width = 15)
    @ApiModelProperty(value = "话题值")
    private String value;
    /**子节点*/
    @Excel(name = "子节点", width = 15)
    @ApiModelProperty(value = "子节点")
    private String childIds;
    @TableField(exist = false)
    private List<Topic> children;
    /**父节点*/
    @Excel(name = "父节点", width = 15)
    @ApiModelProperty(value = "父节点")
    private String parentId;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @Excel(name = "创建时间", width = 15)
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**修改时间*/
    @Excel(name = "修改时间", width = 15)
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
    /**修改人*/
    @Excel(name = "修改人", width = 15)
    @ApiModelProperty(value = "修改人")
    private String updateBy;
    /***/
    @Excel(name = "", width = 15)
    @ApiModelProperty(value = "")
    private String tenantId;

    public Topic(String label, String value) {
        this.label = label;
        this.value = value;
    }

    public Topic() {

    }
}
